package listnode;

/**
 * 1.什么是链表?
   答:链表是一种通过指针串联在一起的线性结构，
      每一个指针由两部分组成，一个是数据域，一个是指针域(存放下一节点的指针)，最后一个指针域的指针指向null(空指针)
      链表的入口节点称为链表的头节点也就是head

   2.链表的类型:
      单链表
      双链表:链表中的每一个节点都包含两个指针，一个指针指向前一个节点，一个指针指向后一个节点
            双链表 既可以向前查询也可以向后查询。
      循环链表:链表最后一个节点的指针域指向头节点

   3.链表的存储:
      链表在内存中不是连续分布的，链表是通过指针域的指针链接在内存中的各个节点,
      分配机制取决于操作系统的内存管理

   4.链表的定义
   5.性能分析
        插入/删除(时间复杂度)   查询(时间复杂度)  使用场景
    数组:O（n)                O(1)   数据量固定，频繁查询，较少增删
    链表:O(1)                 O(n)   数据量不固定，频繁增删，较少查询
 */

//4.链表的定义(整型)
public class ListNode {
    // 结点的值
    public int val;

    // 下一个结点
    public ListNode next;

    // 节点的构造函数(无参)
    public ListNode() {
    }

    // 节点的构造函数(有一个参数)
    public ListNode(int val) {
        this.val = val;
    }

    // 节点的构造函数(有两个参数)
    public ListNode(int val, ListNode next) {
        this.val = val;
        this.next = next;
    }
}




